package concursos.ejb;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import concursos.daos.ReferenciaDAO;
import concursos.interfaces.ReferenciaService;
import concursos.modelos.Referencia;
import concursos.modelos.ReferenciaArquivo;
import concursos.modelos.ReferenciaLink;
import concursos.modelos.ReferenciaLivro;

@Stateless
@LocalBean
public class ReferenciaEjb implements ReferenciaService {

	private ReferenciaDAO dao;
	@PersistenceContext(unitName = "meusconcursosejb")
	private EntityManager manager;

	public ReferenciaDAO getDao() {
		if (this.dao == null)
			this.dao = new ReferenciaDAO(this.manager);
		return this.dao;
	}

	public ReferenciaEjb() {
	
	}

	@Override
	public List<Referencia> listarReferencia(int usuario) {
		return this.getDao().listarReferencia(usuario);
	}

	@Override
	public Referencia buscaPorId(int id) {
		return this.getDao().buscaPorId(id);
	}

	@Override
	public List<Referencia> buscarPorDisciplina(int id) {
		List<Referencia> referencias = new ArrayList<Referencia>();
		referencias = this.getDao().buscarPorDisciplina(id);
		return referencias;
	}

	@Override
	public void cadastrarReferenciaLink(ReferenciaLink referenciaLink) {
		this.getDao().adicionarReferenciaLink(referenciaLink);

	}

	@Override
	public void cadastrarReferenciaLivro(ReferenciaLivro referenciaLivro) {
		this.getDao().adicionarReferenciaLivro(referenciaLivro);

	}

	@Override
	public void cadastrarReferenciaArquivo(ReferenciaArquivo referenciaArquivo) {
		this.getDao().adicionarReferenciaArquivo(referenciaArquivo);
	}

	@Override
	public List<Referencia> listarReferenciaLivro(int usuario) {
		return this.getDao().listarReferenciaLivro(usuario);
	}

	@Override
	public List<Referencia> listarReferenciaLink(int usuario) {
		return this.getDao().listarReferenciaLink(usuario);
	}

	@Override
	public List<Referencia> listarReferenciaArquivo(int usuario) {
		return this.getDao().listarReferenciaArquivo(usuario);
	}

	@Override
	public void excluirReferenciaLink(ReferenciaLink referenciaLink) {
		this.getDao().excluirReferenciaLink(referenciaLink);
		
	}

	@Override
	public void excluirReferenciaLivro(ReferenciaLivro referenciaLivro) {
		this.getDao().excluirReferenciaLivro(referenciaLivro);
	}

	@Override
	public void excluirReferenciaArquivo(ReferenciaArquivo referenciaArquivo) {
		this.getDao().excluirReferenciaArquivo(referenciaArquivo);
		
	}

}
